/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Generation.Production.impl;

import EA_Model.IEC61970.Contingency.ContingencyPackage;

import EA_Model.IEC61970.Contingency.impl.ContingencyPackageImpl;

import EA_Model.IEC61970.ControlArea.ControlAreaPackage;

import EA_Model.IEC61970.ControlArea.impl.ControlAreaPackageImpl;

import EA_Model.IEC61970.Core.CorePackage;

import EA_Model.IEC61970.Core.impl.CorePackageImpl;

import EA_Model.IEC61970.Domain.DomainPackage;

import EA_Model.IEC61970.Domain.impl.DomainPackageImpl;

import EA_Model.IEC61970.Equivalents.EquivalentsPackage;

import EA_Model.IEC61970.Equivalents.impl.EquivalentsPackageImpl;

import EA_Model.IEC61970.Generation.GenerationDynamics.GenerationDynamicsPackage;

import EA_Model.IEC61970.Generation.GenerationDynamics.impl.GenerationDynamicsPackageImpl;

import EA_Model.IEC61970.Generation.Production.AirCompressor;
import EA_Model.IEC61970.Generation.Production.CAESPlant;
import EA_Model.IEC61970.Generation.Production.Classification;
import EA_Model.IEC61970.Generation.Production.CogenerationPlant;
import EA_Model.IEC61970.Generation.Production.CombinedCyclePlant;
import EA_Model.IEC61970.Generation.Production.CostPerHeatUnit;
import EA_Model.IEC61970.Generation.Production.Emission;
import EA_Model.IEC61970.Generation.Production.EmissionAccount;
import EA_Model.IEC61970.Generation.Production.EmissionCurve;
import EA_Model.IEC61970.Generation.Production.EmissionType;
import EA_Model.IEC61970.Generation.Production.EmissionValueSource;
import EA_Model.IEC61970.Generation.Production.FossilFuel;
import EA_Model.IEC61970.Generation.Production.FuelAllocationSchedule;
import EA_Model.IEC61970.Generation.Production.FuelType;
import EA_Model.IEC61970.Generation.Production.GenUnitOpCostCurve;
import EA_Model.IEC61970.Generation.Production.GenUnitOpSchedule;
import EA_Model.IEC61970.Generation.Production.GeneratingUnit;
import EA_Model.IEC61970.Generation.Production.GeneratorControlMode;
import EA_Model.IEC61970.Generation.Production.GeneratorControlSource;
import EA_Model.IEC61970.Generation.Production.GeneratorOperatingMode;
import EA_Model.IEC61970.Generation.Production.GrossToNetActivePowerCurve;
import EA_Model.IEC61970.Generation.Production.HeatInputCurve;
import EA_Model.IEC61970.Generation.Production.HeatRate;
import EA_Model.IEC61970.Generation.Production.HeatRateCurve;
import EA_Model.IEC61970.Generation.Production.HydroEnergyConversionKind;
import EA_Model.IEC61970.Generation.Production.HydroGeneratingEfficiencyCurve;
import EA_Model.IEC61970.Generation.Production.HydroGeneratingUnit;
import EA_Model.IEC61970.Generation.Production.HydroPlantType;
import EA_Model.IEC61970.Generation.Production.HydroPowerPlant;
import EA_Model.IEC61970.Generation.Production.HydroPump;
import EA_Model.IEC61970.Generation.Production.HydroPumpOpSchedule;
import EA_Model.IEC61970.Generation.Production.IncrementalHeatRateCurve;
import EA_Model.IEC61970.Generation.Production.InflowForecast;
import EA_Model.IEC61970.Generation.Production.LevelVsVolumeCurve;
import EA_Model.IEC61970.Generation.Production.NuclearGeneratingUnit;
import EA_Model.IEC61970.Generation.Production.PenstockLossCurve;
import EA_Model.IEC61970.Generation.Production.PenstockType;
import EA_Model.IEC61970.Generation.Production.ProductionFactory;
import EA_Model.IEC61970.Generation.Production.ProductionPackage;
import EA_Model.IEC61970.Generation.Production.Reservoir;
import EA_Model.IEC61970.Generation.Production.ShutdownCurve;
import EA_Model.IEC61970.Generation.Production.SpillwayGateType;
import EA_Model.IEC61970.Generation.Production.StartIgnFuelCurve;
import EA_Model.IEC61970.Generation.Production.StartMainFuelCurve;
import EA_Model.IEC61970.Generation.Production.StartRampCurve;
import EA_Model.IEC61970.Generation.Production.StartupModel;
import EA_Model.IEC61970.Generation.Production.SteamSendoutSchedule;
import EA_Model.IEC61970.Generation.Production.SurgeTankCode;
import EA_Model.IEC61970.Generation.Production.TailbayLossCurve;
import EA_Model.IEC61970.Generation.Production.TargetLevelSchedule;
import EA_Model.IEC61970.Generation.Production.ThermalGeneratingUnit;
import EA_Model.IEC61970.Generation.Production.WindGeneratingUnit;

import EA_Model.IEC61970.IEC61970Package;

import EA_Model.IEC61970.Informative.InfCore.InfCorePackage;

import EA_Model.IEC61970.Informative.InfCore.impl.InfCorePackageImpl;

import EA_Model.IEC61970.LoadModel.LoadModelPackage;

import EA_Model.IEC61970.LoadModel.impl.LoadModelPackageImpl;

import EA_Model.IEC61970.Meas.MeasPackage;

import EA_Model.IEC61970.Meas.impl.MeasPackageImpl;

import EA_Model.IEC61970.OperationalLimits.OperationalLimitsPackage;

import EA_Model.IEC61970.OperationalLimits.impl.OperationalLimitsPackageImpl;

import EA_Model.IEC61970.Outage.OutagePackage;

import EA_Model.IEC61970.Outage.impl.OutagePackageImpl;

import EA_Model.IEC61970.Protection.ProtectionPackage;

import EA_Model.IEC61970.Protection.impl.ProtectionPackageImpl;

import EA_Model.IEC61970.SCADA.SCADAPackage;

import EA_Model.IEC61970.SCADA.impl.SCADAPackageImpl;

import EA_Model.IEC61970.StateVariables.StateVariablesPackage;

import EA_Model.IEC61970.StateVariables.impl.StateVariablesPackageImpl;

import EA_Model.IEC61970.Topology.TopologyPackage;

import EA_Model.IEC61970.Topology.impl.TopologyPackageImpl;

import EA_Model.IEC61970.Wires.WiresPackage;

import EA_Model.IEC61970.Wires.impl.WiresPackageImpl;

import EA_Model.IEC61970.impl.IEC61970PackageImpl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class ProductionPackageImpl extends EPackageImpl implements ProductionPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass thermalGeneratingUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass generatingUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass heatRateEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass classificationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass costPerHeatUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass airCompressorEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass caesPlantEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass cogenerationPlantEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass combinedCyclePlantEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass emissionEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass emissionAccountEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass emissionCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass fossilFuelEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass fuelAllocationScheduleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass genUnitOpCostCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass genUnitOpScheduleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass grossToNetActivePowerCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass heatInputCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass heatRateCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hydroGeneratingEfficiencyCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hydroGeneratingUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hydroPowerPlantEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hydroPumpEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hydroPumpOpScheduleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass incrementalHeatRateCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass inflowForecastEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass levelVsVolumeCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass nuclearGeneratingUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass penstockLossCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass reservoirEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass shutdownCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass startIgnFuelCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass startMainFuelCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass startRampCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass startupModelEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass steamSendoutScheduleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass tailbayLossCurveEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass targetLevelScheduleEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass windGeneratingUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum generatorControlModeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum generatorControlSourceEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum generatorOperatingModeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum emissionTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum emissionValueSourceEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum fuelTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum hydroEnergyConversionKindEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum hydroPlantTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum penstockTypeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum surgeTankCodeEEnum = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum spillwayGateTypeEEnum = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private ProductionPackageImpl() {
		super(eNS_URI, ProductionFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link ProductionPackage#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static ProductionPackage init() {
		if (isInited) return (ProductionPackage)EPackage.Registry.INSTANCE.getEPackage(ProductionPackage.eNS_URI);

		// Obtain or create and register package
		ProductionPackageImpl theProductionPackage = (ProductionPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ProductionPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ProductionPackageImpl());

		isInited = true;

		// Obtain or create and register interdependencies
		IEC61970PackageImpl theIEC61970Package = (IEC61970PackageImpl)(EPackage.Registry.INSTANCE.getEPackage(IEC61970Package.eNS_URI) instanceof IEC61970PackageImpl ? EPackage.Registry.INSTANCE.getEPackage(IEC61970Package.eNS_URI) : IEC61970Package.eINSTANCE);
		DomainPackageImpl theDomainPackage = (DomainPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DomainPackage.eNS_URI) instanceof DomainPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DomainPackage.eNS_URI) : DomainPackage.eINSTANCE);
		InfCorePackageImpl theInfCorePackage = (InfCorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(InfCorePackage.eNS_URI) instanceof InfCorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(InfCorePackage.eNS_URI) : InfCorePackage.eINSTANCE);
		CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
		OperationalLimitsPackageImpl theOperationalLimitsPackage = (OperationalLimitsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(OperationalLimitsPackage.eNS_URI) instanceof OperationalLimitsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(OperationalLimitsPackage.eNS_URI) : OperationalLimitsPackage.eINSTANCE);
		TopologyPackageImpl theTopologyPackage = (TopologyPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(TopologyPackage.eNS_URI) instanceof TopologyPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(TopologyPackage.eNS_URI) : TopologyPackage.eINSTANCE);
		WiresPackageImpl theWiresPackage = (WiresPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(WiresPackage.eNS_URI) instanceof WiresPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(WiresPackage.eNS_URI) : WiresPackage.eINSTANCE);
		LoadModelPackageImpl theLoadModelPackage = (LoadModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(LoadModelPackage.eNS_URI) instanceof LoadModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(LoadModelPackage.eNS_URI) : LoadModelPackage.eINSTANCE);
		GenerationDynamicsPackageImpl theGenerationDynamicsPackage = (GenerationDynamicsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GenerationDynamicsPackage.eNS_URI) instanceof GenerationDynamicsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GenerationDynamicsPackage.eNS_URI) : GenerationDynamicsPackage.eINSTANCE);
		OutagePackageImpl theOutagePackage = (OutagePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(OutagePackage.eNS_URI) instanceof OutagePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(OutagePackage.eNS_URI) : OutagePackage.eINSTANCE);
		ProtectionPackageImpl theProtectionPackage = (ProtectionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ProtectionPackage.eNS_URI) instanceof ProtectionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ProtectionPackage.eNS_URI) : ProtectionPackage.eINSTANCE);
		EquivalentsPackageImpl theEquivalentsPackage = (EquivalentsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(EquivalentsPackage.eNS_URI) instanceof EquivalentsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(EquivalentsPackage.eNS_URI) : EquivalentsPackage.eINSTANCE);
		MeasPackageImpl theMeasPackage = (MeasPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MeasPackage.eNS_URI) instanceof MeasPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MeasPackage.eNS_URI) : MeasPackage.eINSTANCE);
		SCADAPackageImpl theSCADAPackage = (SCADAPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SCADAPackage.eNS_URI) instanceof SCADAPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SCADAPackage.eNS_URI) : SCADAPackage.eINSTANCE);
		ControlAreaPackageImpl theControlAreaPackage = (ControlAreaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ControlAreaPackage.eNS_URI) instanceof ControlAreaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ControlAreaPackage.eNS_URI) : ControlAreaPackage.eINSTANCE);
		ContingencyPackageImpl theContingencyPackage = (ContingencyPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ContingencyPackage.eNS_URI) instanceof ContingencyPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ContingencyPackage.eNS_URI) : ContingencyPackage.eINSTANCE);
		StateVariablesPackageImpl theStateVariablesPackage = (StateVariablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StateVariablesPackage.eNS_URI) instanceof StateVariablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StateVariablesPackage.eNS_URI) : StateVariablesPackage.eINSTANCE);

		// Create package meta-data objects
		theProductionPackage.createPackageContents();
		theIEC61970Package.createPackageContents();
		theDomainPackage.createPackageContents();
		theInfCorePackage.createPackageContents();
		theCorePackage.createPackageContents();
		theOperationalLimitsPackage.createPackageContents();
		theTopologyPackage.createPackageContents();
		theWiresPackage.createPackageContents();
		theLoadModelPackage.createPackageContents();
		theGenerationDynamicsPackage.createPackageContents();
		theOutagePackage.createPackageContents();
		theProtectionPackage.createPackageContents();
		theEquivalentsPackage.createPackageContents();
		theMeasPackage.createPackageContents();
		theSCADAPackage.createPackageContents();
		theControlAreaPackage.createPackageContents();
		theContingencyPackage.createPackageContents();
		theStateVariablesPackage.createPackageContents();

		// Initialize created meta-data
		theProductionPackage.initializePackageContents();
		theIEC61970Package.initializePackageContents();
		theDomainPackage.initializePackageContents();
		theInfCorePackage.initializePackageContents();
		theCorePackage.initializePackageContents();
		theOperationalLimitsPackage.initializePackageContents();
		theTopologyPackage.initializePackageContents();
		theWiresPackage.initializePackageContents();
		theLoadModelPackage.initializePackageContents();
		theGenerationDynamicsPackage.initializePackageContents();
		theOutagePackage.initializePackageContents();
		theProtectionPackage.initializePackageContents();
		theEquivalentsPackage.initializePackageContents();
		theMeasPackage.initializePackageContents();
		theSCADAPackage.initializePackageContents();
		theControlAreaPackage.initializePackageContents();
		theContingencyPackage.initializePackageContents();
		theStateVariablesPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theProductionPackage.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(ProductionPackage.eNS_URI, theProductionPackage);
		return theProductionPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getThermalGeneratingUnit() {
		return thermalGeneratingUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getThermalGeneratingUnit_OMCost() {
		return (EReference)thermalGeneratingUnitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getGeneratingUnit() {
		return generatingUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_AllocSpinResP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_AutoCntrlMarginP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_BaseP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_ControlDeadband() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_ControlPulseHigh() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_ControlPulseLow() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_ControlResponseRate() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_DispReserveFlag() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_Efficiency() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_EnergyMinP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_FastStartFlag() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_FuelPriority() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getGeneratingUnit_GenControlMode() {
		return (EAttribute)generatingUnitEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getGeneratingUnit_GenControlSource() {
		return (EAttribute)generatingUnitEClass.getEStructuralFeatures().get(13);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getGeneratingUnit_GenOperatingMode() {
		return (EAttribute)generatingUnitEClass.getEStructuralFeatures().get(14);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_GovernorMPL() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(15);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_GovernorSCD() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(16);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_HighControlLimit() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(17);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_InitialP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(18);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_LongPF() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(19);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_LowControlLimit() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(20);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_LowerRampRate() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(21);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_MaxEconomicP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(22);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_MaximumAllowableSpinningReserve() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(23);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_MaxOperatingP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(24);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_MinEconomicP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(25);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_MinimumOffTime() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(26);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_MinOperatingP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(27);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_ModelDetail() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(28);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_NominalP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(29);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_NormalPF() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(30);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_PenaltyFactor() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(31);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_RaiseRampRate() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(32);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_RatedGrossMaxP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(33);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_RatedGrossMinP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(34);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_RatedNetMaxP() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(35);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_ShortPF() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(36);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_SpinReserveRamp() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(37);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_StartupCost() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(38);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_StartupTime() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(39);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_StepChange() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(40);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_TieLinePF() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(41);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGeneratingUnit_VariableCost() {
		return (EReference)generatingUnitEClass.getEStructuralFeatures().get(42);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHeatRate() {
		return heatRateEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getHeatRate_Multiplier() {
		return (EAttribute)heatRateEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getHeatRate_Unit() {
		return (EAttribute)heatRateEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatRate_Value() {
		return (EReference)heatRateEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getClassification() {
		return classificationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getClassification_Multiplier() {
		return (EAttribute)classificationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getClassification_Unit() {
		return (EAttribute)classificationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getClassification_Value() {
		return (EReference)classificationEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCostPerHeatUnit() {
		return costPerHeatUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCostPerHeatUnit_Multiplier() {
		return (EAttribute)costPerHeatUnitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCostPerHeatUnit_Unit() {
		return (EAttribute)costPerHeatUnitEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCostPerHeatUnit_Value() {
		return (EReference)costPerHeatUnitEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAirCompressor() {
		return airCompressorEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAirCompressor_AirCompressorRating() {
		return (EReference)airCompressorEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCAESPlant() {
		return caesPlantEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCAESPlant_EnergyStorageCapacity() {
		return (EReference)caesPlantEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCAESPlant_RatedCapacityP() {
		return (EReference)caesPlantEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCogenerationPlant() {
		return cogenerationPlantEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCogenerationPlant_CogenHPSendoutRating() {
		return (EReference)cogenerationPlantEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCogenerationPlant_CogenHPSteamRating() {
		return (EReference)cogenerationPlantEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCogenerationPlant_CogenLPSendoutRating() {
		return (EReference)cogenerationPlantEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCogenerationPlant_CogenLPSteamRating() {
		return (EReference)cogenerationPlantEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCogenerationPlant_RatedP() {
		return (EReference)cogenerationPlantEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCombinedCyclePlant() {
		return combinedCyclePlantEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCombinedCyclePlant_CombCyclePlantRating() {
		return (EReference)combinedCyclePlantEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEmission() {
		return emissionEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEmission_Multiplier() {
		return (EAttribute)emissionEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEmission_Unit() {
		return (EAttribute)emissionEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEmission_Value() {
		return (EReference)emissionEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEmissionAccount() {
		return emissionAccountEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEmissionAccount_EmissionType() {
		return (EAttribute)emissionAccountEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEmissionAccount_EmissionValueSource() {
		return (EAttribute)emissionAccountEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEmissionCurve() {
		return emissionCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEmissionCurve_EmissionContent() {
		return (EReference)emissionCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEmissionCurve_EmissionType() {
		return (EAttribute)emissionCurveEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEmissionCurve_IsNetGrossP() {
		return (EReference)emissionCurveEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getFossilFuel() {
		return fossilFuelEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getFossilFuel_FossilFuelType() {
		return (EAttribute)fossilFuelEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelCost() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelDispatchCost() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelEffFactor() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelHandlingCost() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelHeatContent() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelMixture() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_FuelSulfur() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_HighBreakpointP() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFossilFuel_LowBreakpointP() {
		return (EReference)fossilFuelEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getFuelAllocationSchedule() {
		return fuelAllocationScheduleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFuelAllocationSchedule_FuelAllocationEndDate() {
		return (EReference)fuelAllocationScheduleEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFuelAllocationSchedule_FuelAllocationStartDate() {
		return (EReference)fuelAllocationScheduleEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getFuelAllocationSchedule_FuelType() {
		return (EAttribute)fuelAllocationScheduleEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFuelAllocationSchedule_MaxFuelAllocation() {
		return (EReference)fuelAllocationScheduleEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getFuelAllocationSchedule_MinFuelAllocation() {
		return (EReference)fuelAllocationScheduleEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getGenUnitOpCostCurve() {
		return genUnitOpCostCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getGenUnitOpCostCurve_IsNetGrossP() {
		return (EReference)genUnitOpCostCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getGenUnitOpSchedule() {
		return genUnitOpScheduleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getGrossToNetActivePowerCurve() {
		return grossToNetActivePowerCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHeatInputCurve() {
		return heatInputCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatInputCurve_AuxPowerMult() {
		return (EReference)heatInputCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatInputCurve_AuxPowerOffset() {
		return (EReference)heatInputCurveEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatInputCurve_HeatInputEff() {
		return (EReference)heatInputCurveEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatInputCurve_HeatInputOffset() {
		return (EReference)heatInputCurveEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatInputCurve_IsNetGrossP() {
		return (EReference)heatInputCurveEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHeatRateCurve() {
		return heatRateCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHeatRateCurve_IsNetGrossP() {
		return (EReference)heatRateCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHydroGeneratingEfficiencyCurve() {
		return hydroGeneratingEfficiencyCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHydroGeneratingUnit() {
		return hydroGeneratingUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getHydroGeneratingUnit_EnergyConversionCapability() {
		return (EAttribute)hydroGeneratingUnitEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroGeneratingUnit_HydroUnitWaterCost() {
		return (EReference)hydroGeneratingUnitEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHydroPowerPlant() {
		return hydroPowerPlantEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPowerPlant_DischargeTravelDelay() {
		return (EReference)hydroPowerPlantEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPowerPlant_GenRatedP() {
		return (EReference)hydroPowerPlantEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getHydroPowerPlant_HydroPlantType() {
		return (EAttribute)hydroPowerPlantEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getHydroPowerPlant_PenstockType() {
		return (EAttribute)hydroPowerPlantEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPowerPlant_PlantDischargeCapacity() {
		return (EReference)hydroPowerPlantEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPowerPlant_PlantRatedHead() {
		return (EReference)hydroPowerPlantEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPowerPlant_PumpRatedP() {
		return (EReference)hydroPowerPlantEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getHydroPowerPlant_SurgeTankCode() {
		return (EAttribute)hydroPowerPlantEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPowerPlant_SurgeTankCrestLevel() {
		return (EReference)hydroPowerPlantEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHydroPump() {
		return hydroPumpEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPump_PumpDischAtMaxHead() {
		return (EReference)hydroPumpEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPump_PumpDischAtMinHead() {
		return (EReference)hydroPumpEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPump_PumpPowerAtMaxHead() {
		return (EReference)hydroPumpEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHydroPump_PumpPowerAtMinHead() {
		return (EReference)hydroPumpEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHydroPumpOpSchedule() {
		return hydroPumpOpScheduleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIncrementalHeatRateCurve() {
		return incrementalHeatRateCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getIncrementalHeatRateCurve_IsNetGrossP() {
		return (EReference)incrementalHeatRateCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInflowForecast() {
		return inflowForecastEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getLevelVsVolumeCurve() {
		return levelVsVolumeCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getNuclearGeneratingUnit() {
		return nuclearGeneratingUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPenstockLossCurve() {
		return penstockLossCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getReservoir() {
		return reservoirEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_ActiveStorageCapacity() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_EnergyStorageRating() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_FullSupplyLevel() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_GrossCapacity() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_NormalMinOperateLevel() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_RiverOutletWorks() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_SpillTravelDelay() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_SpillwayCapacity() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_SpillwayCrestLength() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getReservoir_SpillwayCrestLevel() {
		return (EReference)reservoirEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getReservoir_SpillWayGateType() {
		return (EAttribute)reservoirEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getShutdownCurve() {
		return shutdownCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getShutdownCurve_ShutdownCost() {
		return (EReference)shutdownCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getShutdownCurve_ShutdownDate() {
		return (EReference)shutdownCurveEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getStartIgnFuelCurve() {
		return startIgnFuelCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getStartIgnFuelCurve_IgnitionFuelType() {
		return (EAttribute)startIgnFuelCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getStartMainFuelCurve() {
		return startMainFuelCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getStartMainFuelCurve_MainFuelType() {
		return (EAttribute)startMainFuelCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getStartRampCurve() {
		return startRampCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartRampCurve_HotStandbyRamp() {
		return (EReference)startRampCurveEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getStartupModel() {
		return startupModelEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_FixedMaintCost() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_HotStandbyHeat() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_IncrementalMaintCost() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_MinimumDownTime() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_MinimumRunTime() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_RiskFactorCost() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_StartupCost() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_StartupDate() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_StartupPriority() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getStartupModel_StbyAuxP() {
		return (EReference)startupModelEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSteamSendoutSchedule() {
		return steamSendoutScheduleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTailbayLossCurve() {
		return tailbayLossCurveEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTargetLevelSchedule() {
		return targetLevelScheduleEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTargetLevelSchedule_HighLevelLimit() {
		return (EReference)targetLevelScheduleEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTargetLevelSchedule_LowLevelLimit() {
		return (EReference)targetLevelScheduleEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getWindGeneratingUnit() {
		return windGeneratingUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getGeneratorControlMode() {
		return generatorControlModeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getGeneratorControlSource() {
		return generatorControlSourceEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getGeneratorOperatingMode() {
		return generatorOperatingModeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getEmissionType() {
		return emissionTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getEmissionValueSource() {
		return emissionValueSourceEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getFuelType() {
		return fuelTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getHydroEnergyConversionKind() {
		return hydroEnergyConversionKindEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getHydroPlantType() {
		return hydroPlantTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getPenstockType() {
		return penstockTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getSurgeTankCode() {
		return surgeTankCodeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getSpillwayGateType() {
		return spillwayGateTypeEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ProductionFactory getProductionFactory() {
		return (ProductionFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		thermalGeneratingUnitEClass = createEClass(THERMAL_GENERATING_UNIT);
		createEReference(thermalGeneratingUnitEClass, THERMAL_GENERATING_UNIT__OM_COST);

		generatingUnitEClass = createEClass(GENERATING_UNIT);
		createEReference(generatingUnitEClass, GENERATING_UNIT__ALLOC_SPIN_RES_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__AUTO_CNTRL_MARGIN_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__BASE_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__CONTROL_DEADBAND);
		createEReference(generatingUnitEClass, GENERATING_UNIT__CONTROL_PULSE_HIGH);
		createEReference(generatingUnitEClass, GENERATING_UNIT__CONTROL_PULSE_LOW);
		createEReference(generatingUnitEClass, GENERATING_UNIT__CONTROL_RESPONSE_RATE);
		createEReference(generatingUnitEClass, GENERATING_UNIT__DISP_RESERVE_FLAG);
		createEReference(generatingUnitEClass, GENERATING_UNIT__EFFICIENCY);
		createEReference(generatingUnitEClass, GENERATING_UNIT__ENERGY_MIN_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__FAST_START_FLAG);
		createEReference(generatingUnitEClass, GENERATING_UNIT__FUEL_PRIORITY);
		createEAttribute(generatingUnitEClass, GENERATING_UNIT__GEN_CONTROL_MODE);
		createEAttribute(generatingUnitEClass, GENERATING_UNIT__GEN_CONTROL_SOURCE);
		createEAttribute(generatingUnitEClass, GENERATING_UNIT__GEN_OPERATING_MODE);
		createEReference(generatingUnitEClass, GENERATING_UNIT__GOVERNOR_MPL);
		createEReference(generatingUnitEClass, GENERATING_UNIT__GOVERNOR_SCD);
		createEReference(generatingUnitEClass, GENERATING_UNIT__HIGH_CONTROL_LIMIT);
		createEReference(generatingUnitEClass, GENERATING_UNIT__INITIAL_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__LONG_PF);
		createEReference(generatingUnitEClass, GENERATING_UNIT__LOW_CONTROL_LIMIT);
		createEReference(generatingUnitEClass, GENERATING_UNIT__LOWER_RAMP_RATE);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MAX_ECONOMIC_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MAXIMUM_ALLOWABLE_SPINNING_RESERVE);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MAX_OPERATING_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MIN_ECONOMIC_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MINIMUM_OFF_TIME);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MIN_OPERATING_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__MODEL_DETAIL);
		createEReference(generatingUnitEClass, GENERATING_UNIT__NOMINAL_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__NORMAL_PF);
		createEReference(generatingUnitEClass, GENERATING_UNIT__PENALTY_FACTOR);
		createEReference(generatingUnitEClass, GENERATING_UNIT__RAISE_RAMP_RATE);
		createEReference(generatingUnitEClass, GENERATING_UNIT__RATED_GROSS_MAX_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__RATED_GROSS_MIN_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__RATED_NET_MAX_P);
		createEReference(generatingUnitEClass, GENERATING_UNIT__SHORT_PF);
		createEReference(generatingUnitEClass, GENERATING_UNIT__SPIN_RESERVE_RAMP);
		createEReference(generatingUnitEClass, GENERATING_UNIT__STARTUP_COST);
		createEReference(generatingUnitEClass, GENERATING_UNIT__STARTUP_TIME);
		createEReference(generatingUnitEClass, GENERATING_UNIT__STEP_CHANGE);
		createEReference(generatingUnitEClass, GENERATING_UNIT__TIE_LINE_PF);
		createEReference(generatingUnitEClass, GENERATING_UNIT__VARIABLE_COST);

		heatRateEClass = createEClass(HEAT_RATE);
		createEAttribute(heatRateEClass, HEAT_RATE__MULTIPLIER);
		createEAttribute(heatRateEClass, HEAT_RATE__UNIT);
		createEReference(heatRateEClass, HEAT_RATE__VALUE);

		classificationEClass = createEClass(CLASSIFICATION);
		createEAttribute(classificationEClass, CLASSIFICATION__MULTIPLIER);
		createEAttribute(classificationEClass, CLASSIFICATION__UNIT);
		createEReference(classificationEClass, CLASSIFICATION__VALUE);

		costPerHeatUnitEClass = createEClass(COST_PER_HEAT_UNIT);
		createEAttribute(costPerHeatUnitEClass, COST_PER_HEAT_UNIT__MULTIPLIER);
		createEAttribute(costPerHeatUnitEClass, COST_PER_HEAT_UNIT__UNIT);
		createEReference(costPerHeatUnitEClass, COST_PER_HEAT_UNIT__VALUE);

		airCompressorEClass = createEClass(AIR_COMPRESSOR);
		createEReference(airCompressorEClass, AIR_COMPRESSOR__AIR_COMPRESSOR_RATING);

		caesPlantEClass = createEClass(CAES_PLANT);
		createEReference(caesPlantEClass, CAES_PLANT__ENERGY_STORAGE_CAPACITY);
		createEReference(caesPlantEClass, CAES_PLANT__RATED_CAPACITY_P);

		cogenerationPlantEClass = createEClass(COGENERATION_PLANT);
		createEReference(cogenerationPlantEClass, COGENERATION_PLANT__COGEN_HP_SENDOUT_RATING);
		createEReference(cogenerationPlantEClass, COGENERATION_PLANT__COGEN_HP_STEAM_RATING);
		createEReference(cogenerationPlantEClass, COGENERATION_PLANT__COGEN_LP_SENDOUT_RATING);
		createEReference(cogenerationPlantEClass, COGENERATION_PLANT__COGEN_LP_STEAM_RATING);
		createEReference(cogenerationPlantEClass, COGENERATION_PLANT__RATED_P);

		combinedCyclePlantEClass = createEClass(COMBINED_CYCLE_PLANT);
		createEReference(combinedCyclePlantEClass, COMBINED_CYCLE_PLANT__COMB_CYCLE_PLANT_RATING);

		emissionEClass = createEClass(EMISSION);
		createEAttribute(emissionEClass, EMISSION__MULTIPLIER);
		createEAttribute(emissionEClass, EMISSION__UNIT);
		createEReference(emissionEClass, EMISSION__VALUE);

		emissionAccountEClass = createEClass(EMISSION_ACCOUNT);
		createEAttribute(emissionAccountEClass, EMISSION_ACCOUNT__EMISSION_TYPE);
		createEAttribute(emissionAccountEClass, EMISSION_ACCOUNT__EMISSION_VALUE_SOURCE);

		emissionCurveEClass = createEClass(EMISSION_CURVE);
		createEReference(emissionCurveEClass, EMISSION_CURVE__EMISSION_CONTENT);
		createEAttribute(emissionCurveEClass, EMISSION_CURVE__EMISSION_TYPE);
		createEReference(emissionCurveEClass, EMISSION_CURVE__IS_NET_GROSS_P);

		fossilFuelEClass = createEClass(FOSSIL_FUEL);
		createEAttribute(fossilFuelEClass, FOSSIL_FUEL__FOSSIL_FUEL_TYPE);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_COST);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_DISPATCH_COST);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_EFF_FACTOR);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_HANDLING_COST);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_HEAT_CONTENT);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_MIXTURE);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__FUEL_SULFUR);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__HIGH_BREAKPOINT_P);
		createEReference(fossilFuelEClass, FOSSIL_FUEL__LOW_BREAKPOINT_P);

		fuelAllocationScheduleEClass = createEClass(FUEL_ALLOCATION_SCHEDULE);
		createEReference(fuelAllocationScheduleEClass, FUEL_ALLOCATION_SCHEDULE__FUEL_ALLOCATION_END_DATE);
		createEReference(fuelAllocationScheduleEClass, FUEL_ALLOCATION_SCHEDULE__FUEL_ALLOCATION_START_DATE);
		createEAttribute(fuelAllocationScheduleEClass, FUEL_ALLOCATION_SCHEDULE__FUEL_TYPE);
		createEReference(fuelAllocationScheduleEClass, FUEL_ALLOCATION_SCHEDULE__MAX_FUEL_ALLOCATION);
		createEReference(fuelAllocationScheduleEClass, FUEL_ALLOCATION_SCHEDULE__MIN_FUEL_ALLOCATION);

		genUnitOpCostCurveEClass = createEClass(GEN_UNIT_OP_COST_CURVE);
		createEReference(genUnitOpCostCurveEClass, GEN_UNIT_OP_COST_CURVE__IS_NET_GROSS_P);

		genUnitOpScheduleEClass = createEClass(GEN_UNIT_OP_SCHEDULE);

		grossToNetActivePowerCurveEClass = createEClass(GROSS_TO_NET_ACTIVE_POWER_CURVE);

		heatInputCurveEClass = createEClass(HEAT_INPUT_CURVE);
		createEReference(heatInputCurveEClass, HEAT_INPUT_CURVE__AUX_POWER_MULT);
		createEReference(heatInputCurveEClass, HEAT_INPUT_CURVE__AUX_POWER_OFFSET);
		createEReference(heatInputCurveEClass, HEAT_INPUT_CURVE__HEAT_INPUT_EFF);
		createEReference(heatInputCurveEClass, HEAT_INPUT_CURVE__HEAT_INPUT_OFFSET);
		createEReference(heatInputCurveEClass, HEAT_INPUT_CURVE__IS_NET_GROSS_P);

		heatRateCurveEClass = createEClass(HEAT_RATE_CURVE);
		createEReference(heatRateCurveEClass, HEAT_RATE_CURVE__IS_NET_GROSS_P);

		hydroGeneratingEfficiencyCurveEClass = createEClass(HYDRO_GENERATING_EFFICIENCY_CURVE);

		hydroGeneratingUnitEClass = createEClass(HYDRO_GENERATING_UNIT);
		createEAttribute(hydroGeneratingUnitEClass, HYDRO_GENERATING_UNIT__ENERGY_CONVERSION_CAPABILITY);
		createEReference(hydroGeneratingUnitEClass, HYDRO_GENERATING_UNIT__HYDRO_UNIT_WATER_COST);

		hydroPowerPlantEClass = createEClass(HYDRO_POWER_PLANT);
		createEReference(hydroPowerPlantEClass, HYDRO_POWER_PLANT__DISCHARGE_TRAVEL_DELAY);
		createEReference(hydroPowerPlantEClass, HYDRO_POWER_PLANT__GEN_RATED_P);
		createEAttribute(hydroPowerPlantEClass, HYDRO_POWER_PLANT__HYDRO_PLANT_TYPE);
		createEAttribute(hydroPowerPlantEClass, HYDRO_POWER_PLANT__PENSTOCK_TYPE);
		createEReference(hydroPowerPlantEClass, HYDRO_POWER_PLANT__PLANT_DISCHARGE_CAPACITY);
		createEReference(hydroPowerPlantEClass, HYDRO_POWER_PLANT__PLANT_RATED_HEAD);
		createEReference(hydroPowerPlantEClass, HYDRO_POWER_PLANT__PUMP_RATED_P);
		createEAttribute(hydroPowerPlantEClass, HYDRO_POWER_PLANT__SURGE_TANK_CODE);
		createEReference(hydroPowerPlantEClass, HYDRO_POWER_PLANT__SURGE_TANK_CREST_LEVEL);

		hydroPumpEClass = createEClass(HYDRO_PUMP);
		createEReference(hydroPumpEClass, HYDRO_PUMP__PUMP_DISCH_AT_MAX_HEAD);
		createEReference(hydroPumpEClass, HYDRO_PUMP__PUMP_DISCH_AT_MIN_HEAD);
		createEReference(hydroPumpEClass, HYDRO_PUMP__PUMP_POWER_AT_MAX_HEAD);
		createEReference(hydroPumpEClass, HYDRO_PUMP__PUMP_POWER_AT_MIN_HEAD);

		hydroPumpOpScheduleEClass = createEClass(HYDRO_PUMP_OP_SCHEDULE);

		incrementalHeatRateCurveEClass = createEClass(INCREMENTAL_HEAT_RATE_CURVE);
		createEReference(incrementalHeatRateCurveEClass, INCREMENTAL_HEAT_RATE_CURVE__IS_NET_GROSS_P);

		inflowForecastEClass = createEClass(INFLOW_FORECAST);

		levelVsVolumeCurveEClass = createEClass(LEVEL_VS_VOLUME_CURVE);

		nuclearGeneratingUnitEClass = createEClass(NUCLEAR_GENERATING_UNIT);

		penstockLossCurveEClass = createEClass(PENSTOCK_LOSS_CURVE);

		reservoirEClass = createEClass(RESERVOIR);
		createEReference(reservoirEClass, RESERVOIR__ACTIVE_STORAGE_CAPACITY);
		createEReference(reservoirEClass, RESERVOIR__ENERGY_STORAGE_RATING);
		createEReference(reservoirEClass, RESERVOIR__FULL_SUPPLY_LEVEL);
		createEReference(reservoirEClass, RESERVOIR__GROSS_CAPACITY);
		createEReference(reservoirEClass, RESERVOIR__NORMAL_MIN_OPERATE_LEVEL);
		createEReference(reservoirEClass, RESERVOIR__RIVER_OUTLET_WORKS);
		createEReference(reservoirEClass, RESERVOIR__SPILL_TRAVEL_DELAY);
		createEReference(reservoirEClass, RESERVOIR__SPILLWAY_CAPACITY);
		createEReference(reservoirEClass, RESERVOIR__SPILLWAY_CREST_LENGTH);
		createEReference(reservoirEClass, RESERVOIR__SPILLWAY_CREST_LEVEL);
		createEAttribute(reservoirEClass, RESERVOIR__SPILL_WAY_GATE_TYPE);

		shutdownCurveEClass = createEClass(SHUTDOWN_CURVE);
		createEReference(shutdownCurveEClass, SHUTDOWN_CURVE__SHUTDOWN_COST);
		createEReference(shutdownCurveEClass, SHUTDOWN_CURVE__SHUTDOWN_DATE);

		startIgnFuelCurveEClass = createEClass(START_IGN_FUEL_CURVE);
		createEAttribute(startIgnFuelCurveEClass, START_IGN_FUEL_CURVE__IGNITION_FUEL_TYPE);

		startMainFuelCurveEClass = createEClass(START_MAIN_FUEL_CURVE);
		createEAttribute(startMainFuelCurveEClass, START_MAIN_FUEL_CURVE__MAIN_FUEL_TYPE);

		startRampCurveEClass = createEClass(START_RAMP_CURVE);
		createEReference(startRampCurveEClass, START_RAMP_CURVE__HOT_STANDBY_RAMP);

		startupModelEClass = createEClass(STARTUP_MODEL);
		createEReference(startupModelEClass, STARTUP_MODEL__FIXED_MAINT_COST);
		createEReference(startupModelEClass, STARTUP_MODEL__HOT_STANDBY_HEAT);
		createEReference(startupModelEClass, STARTUP_MODEL__INCREMENTAL_MAINT_COST);
		createEReference(startupModelEClass, STARTUP_MODEL__MINIMUM_DOWN_TIME);
		createEReference(startupModelEClass, STARTUP_MODEL__MINIMUM_RUN_TIME);
		createEReference(startupModelEClass, STARTUP_MODEL__RISK_FACTOR_COST);
		createEReference(startupModelEClass, STARTUP_MODEL__STARTUP_COST);
		createEReference(startupModelEClass, STARTUP_MODEL__STARTUP_DATE);
		createEReference(startupModelEClass, STARTUP_MODEL__STARTUP_PRIORITY);
		createEReference(startupModelEClass, STARTUP_MODEL__STBY_AUX_P);

		steamSendoutScheduleEClass = createEClass(STEAM_SENDOUT_SCHEDULE);

		tailbayLossCurveEClass = createEClass(TAILBAY_LOSS_CURVE);

		targetLevelScheduleEClass = createEClass(TARGET_LEVEL_SCHEDULE);
		createEReference(targetLevelScheduleEClass, TARGET_LEVEL_SCHEDULE__HIGH_LEVEL_LIMIT);
		createEReference(targetLevelScheduleEClass, TARGET_LEVEL_SCHEDULE__LOW_LEVEL_LIMIT);

		windGeneratingUnitEClass = createEClass(WIND_GENERATING_UNIT);

		// Create enums
		generatorControlModeEEnum = createEEnum(GENERATOR_CONTROL_MODE);
		generatorControlSourceEEnum = createEEnum(GENERATOR_CONTROL_SOURCE);
		generatorOperatingModeEEnum = createEEnum(GENERATOR_OPERATING_MODE);
		emissionTypeEEnum = createEEnum(EMISSION_TYPE);
		emissionValueSourceEEnum = createEEnum(EMISSION_VALUE_SOURCE);
		fuelTypeEEnum = createEEnum(FUEL_TYPE);
		hydroEnergyConversionKindEEnum = createEEnum(HYDRO_ENERGY_CONVERSION_KIND);
		hydroPlantTypeEEnum = createEEnum(HYDRO_PLANT_TYPE);
		penstockTypeEEnum = createEEnum(PENSTOCK_TYPE);
		surgeTankCodeEEnum = createEEnum(SURGE_TANK_CODE);
		spillwayGateTypeEEnum = createEEnum(SPILLWAY_GATE_TYPE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Obtain other dependent packages
		CorePackage theCorePackage = (CorePackage)EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI);
		DomainPackage theDomainPackage = (DomainPackage)EPackage.Registry.INSTANCE.getEPackage(DomainPackage.eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		thermalGeneratingUnitEClass.getESuperTypes().add(this.getGeneratingUnit());
		generatingUnitEClass.getESuperTypes().add(theCorePackage.getEquipment());
		airCompressorEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		caesPlantEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		cogenerationPlantEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		combinedCyclePlantEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		emissionAccountEClass.getESuperTypes().add(theCorePackage.getCurve());
		emissionCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		fossilFuelEClass.getESuperTypes().add(theCorePackage.getIdentifiedObject());
		fuelAllocationScheduleEClass.getESuperTypes().add(theCorePackage.getCurve());
		genUnitOpCostCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		genUnitOpScheduleEClass.getESuperTypes().add(theCorePackage.getRegularIntervalSchedule());
		grossToNetActivePowerCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		heatInputCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		heatRateCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		hydroGeneratingEfficiencyCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		hydroGeneratingUnitEClass.getESuperTypes().add(this.getGeneratingUnit());
		hydroPowerPlantEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		hydroPumpEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		hydroPumpOpScheduleEClass.getESuperTypes().add(theCorePackage.getRegularIntervalSchedule());
		incrementalHeatRateCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		inflowForecastEClass.getESuperTypes().add(theCorePackage.getRegularIntervalSchedule());
		levelVsVolumeCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		nuclearGeneratingUnitEClass.getESuperTypes().add(this.getGeneratingUnit());
		penstockLossCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		reservoirEClass.getESuperTypes().add(theCorePackage.getPowerSystemResource());
		shutdownCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		startIgnFuelCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		startMainFuelCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		startRampCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		startupModelEClass.getESuperTypes().add(theCorePackage.getIdentifiedObject());
		steamSendoutScheduleEClass.getESuperTypes().add(theCorePackage.getRegularIntervalSchedule());
		tailbayLossCurveEClass.getESuperTypes().add(theCorePackage.getCurve());
		targetLevelScheduleEClass.getESuperTypes().add(theCorePackage.getCurve());
		windGeneratingUnitEClass.getESuperTypes().add(this.getGeneratingUnit());

		// Initialize classes and features; add operations and parameters
		initEClass(thermalGeneratingUnitEClass, ThermalGeneratingUnit.class, "ThermalGeneratingUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getThermalGeneratingUnit_OMCost(), this.getCostPerHeatUnit(), null, "oMCost", null, 0, 1, ThermalGeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(generatingUnitEClass, GeneratingUnit.class, "GeneratingUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getGeneratingUnit_AllocSpinResP(), theDomainPackage.getActivePower(), null, "allocSpinResP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_AutoCntrlMarginP(), theDomainPackage.getActivePower(), null, "autoCntrlMarginP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_BaseP(), theDomainPackage.getActivePower(), null, "baseP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_ControlDeadband(), theDomainPackage.getActivePower(), null, "controlDeadband", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_ControlPulseHigh(), theDomainPackage.getSeconds(), null, "controlPulseHigh", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_ControlPulseLow(), theDomainPackage.getSeconds(), null, "controlPulseLow", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_ControlResponseRate(), theDomainPackage.getActivePowerChangeRate(), null, "controlResponseRate", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_DispReserveFlag(), theDomainPackage.getBoolean(), null, "dispReserveFlag", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_Efficiency(), theDomainPackage.getPU(), null, "efficiency", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_EnergyMinP(), this.getHeatRate(), null, "energyMinP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_FastStartFlag(), theDomainPackage.getBoolean(), null, "fastStartFlag", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_FuelPriority(), theDomainPackage.getInteger(), null, "fuelPriority", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getGeneratingUnit_GenControlMode(), this.getGeneratorControlMode(), "genControlMode", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getGeneratingUnit_GenControlSource(), this.getGeneratorControlSource(), "genControlSource", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getGeneratingUnit_GenOperatingMode(), this.getGeneratorOperatingMode(), "genOperatingMode", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_GovernorMPL(), theDomainPackage.getPU(), null, "governorMPL", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_GovernorSCD(), theDomainPackage.getPerCent(), null, "governorSCD", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_HighControlLimit(), theDomainPackage.getActivePower(), null, "highControlLimit", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_InitialP(), theDomainPackage.getActivePower(), null, "initialP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_LongPF(), theDomainPackage.getFloat(), null, "longPF", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_LowControlLimit(), theDomainPackage.getActivePower(), null, "lowControlLimit", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_LowerRampRate(), theDomainPackage.getActivePowerChangeRate(), null, "lowerRampRate", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_MaxEconomicP(), theDomainPackage.getActivePower(), null, "maxEconomicP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_MaximumAllowableSpinningReserve(), theDomainPackage.getActivePower(), null, "maximumAllowableSpinningReserve", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_MaxOperatingP(), theDomainPackage.getActivePower(), null, "maxOperatingP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_MinEconomicP(), theDomainPackage.getActivePower(), null, "minEconomicP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_MinimumOffTime(), theDomainPackage.getSeconds(), null, "minimumOffTime", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_MinOperatingP(), theDomainPackage.getActivePower(), null, "minOperatingP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_ModelDetail(), this.getClassification(), null, "modelDetail", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_NominalP(), theDomainPackage.getActivePower(), null, "nominalP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_NormalPF(), theDomainPackage.getFloat(), null, "normalPF", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_PenaltyFactor(), theDomainPackage.getFloat(), null, "penaltyFactor", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_RaiseRampRate(), theDomainPackage.getActivePowerChangeRate(), null, "raiseRampRate", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_RatedGrossMaxP(), theDomainPackage.getActivePower(), null, "ratedGrossMaxP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_RatedGrossMinP(), theDomainPackage.getActivePower(), null, "ratedGrossMinP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_RatedNetMaxP(), theDomainPackage.getActivePower(), null, "ratedNetMaxP", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_ShortPF(), theDomainPackage.getFloat(), null, "shortPF", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_SpinReserveRamp(), theDomainPackage.getActivePowerChangeRate(), null, "spinReserveRamp", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_StartupCost(), theDomainPackage.getMoney(), null, "startupCost", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_StartupTime(), theDomainPackage.getSeconds(), null, "startupTime", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_StepChange(), theDomainPackage.getActivePower(), null, "stepChange", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_TieLinePF(), theDomainPackage.getFloat(), null, "tieLinePF", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getGeneratingUnit_VariableCost(), theDomainPackage.getMoney(), null, "variableCost", null, 0, 1, GeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(heatRateEClass, HeatRate.class, "HeatRate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getHeatRate_Multiplier(), theDomainPackage.getUnitMultiplier(), "multiplier", null, 0, 1, HeatRate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getHeatRate_Unit(), theDomainPackage.getUnitSymbol(), "unit", "J/s", 0, 1, HeatRate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHeatRate_Value(), theDomainPackage.getFloat(), null, "value", null, 0, 1, HeatRate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(classificationEClass, Classification.class, "Classification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getClassification_Multiplier(), theDomainPackage.getUnitMultiplier(), "multiplier", "none", 0, 1, Classification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getClassification_Unit(), theDomainPackage.getUnitSymbol(), "unit", "none", 0, 1, Classification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getClassification_Value(), theDomainPackage.getInteger(), null, "value", null, 0, 1, Classification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(costPerHeatUnitEClass, CostPerHeatUnit.class, "CostPerHeatUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getCostPerHeatUnit_Multiplier(), theDomainPackage.getUnitMultiplier(), "multiplier", null, 0, 1, CostPerHeatUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getCostPerHeatUnit_Unit(), theDomainPackage.getMonetaryAmountPerHeatUnit(), "unit", null, 0, 1, CostPerHeatUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getCostPerHeatUnit_Value(), theDomainPackage.getFloat(), null, "value", null, 0, 1, CostPerHeatUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(airCompressorEClass, AirCompressor.class, "AirCompressor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getAirCompressor_AirCompressorRating(), theDomainPackage.getFloat(), null, "airCompressorRating", null, 0, 1, AirCompressor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(caesPlantEClass, CAESPlant.class, "CAESPlant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCAESPlant_EnergyStorageCapacity(), theDomainPackage.getRealEnergy(), null, "energyStorageCapacity", null, 0, 1, CAESPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getCAESPlant_RatedCapacityP(), theDomainPackage.getActivePower(), null, "ratedCapacityP", null, 0, 1, CAESPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(cogenerationPlantEClass, CogenerationPlant.class, "CogenerationPlant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCogenerationPlant_CogenHPSendoutRating(), theDomainPackage.getFloat(), null, "cogenHPSendoutRating", null, 0, 1, CogenerationPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getCogenerationPlant_CogenHPSteamRating(), theDomainPackage.getFloat(), null, "cogenHPSteamRating", null, 0, 1, CogenerationPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getCogenerationPlant_CogenLPSendoutRating(), theDomainPackage.getFloat(), null, "cogenLPSendoutRating", null, 0, 1, CogenerationPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getCogenerationPlant_CogenLPSteamRating(), theDomainPackage.getFloat(), null, "cogenLPSteamRating", null, 0, 1, CogenerationPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getCogenerationPlant_RatedP(), theDomainPackage.getActivePower(), null, "ratedP", null, 0, 1, CogenerationPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(combinedCyclePlantEClass, CombinedCyclePlant.class, "CombinedCyclePlant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCombinedCyclePlant_CombCyclePlantRating(), theDomainPackage.getActivePower(), null, "combCyclePlantRating", null, 0, 1, CombinedCyclePlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(emissionEClass, Emission.class, "Emission", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getEmission_Multiplier(), theDomainPackage.getUnitMultiplier(), "multiplier", null, 0, 1, Emission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getEmission_Unit(), theDomainPackage.getUnitSymbol(), "unit", "kg/J", 0, 1, Emission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getEmission_Value(), theDomainPackage.getFloat(), null, "value", null, 0, 1, Emission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(emissionAccountEClass, EmissionAccount.class, "EmissionAccount", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getEmissionAccount_EmissionType(), this.getEmissionType(), "emissionType", null, 0, 1, EmissionAccount.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getEmissionAccount_EmissionValueSource(), this.getEmissionValueSource(), "emissionValueSource", null, 0, 1, EmissionAccount.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(emissionCurveEClass, EmissionCurve.class, "EmissionCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEmissionCurve_EmissionContent(), this.getEmission(), null, "emissionContent", null, 0, 1, EmissionCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getEmissionCurve_EmissionType(), this.getEmissionType(), "emissionType", null, 0, 1, EmissionCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getEmissionCurve_IsNetGrossP(), theDomainPackage.getBoolean(), null, "isNetGrossP", null, 0, 1, EmissionCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(fossilFuelEClass, FossilFuel.class, "FossilFuel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getFossilFuel_FossilFuelType(), this.getFuelType(), "fossilFuelType", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelCost(), this.getCostPerHeatUnit(), null, "fuelCost", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelDispatchCost(), this.getCostPerHeatUnit(), null, "fuelDispatchCost", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelEffFactor(), theDomainPackage.getPU(), null, "fuelEffFactor", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelHandlingCost(), this.getCostPerHeatUnit(), null, "fuelHandlingCost", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelHeatContent(), theDomainPackage.getFloat(), null, "fuelHeatContent", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelMixture(), theDomainPackage.getPerCent(), null, "fuelMixture", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_FuelSulfur(), theDomainPackage.getPU(), null, "fuelSulfur", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_HighBreakpointP(), theDomainPackage.getActivePower(), null, "highBreakpointP", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFossilFuel_LowBreakpointP(), theDomainPackage.getActivePower(), null, "lowBreakpointP", null, 0, 1, FossilFuel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(fuelAllocationScheduleEClass, FuelAllocationSchedule.class, "FuelAllocationSchedule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getFuelAllocationSchedule_FuelAllocationEndDate(), theDomainPackage.getAbsoluteDateTime(), null, "fuelAllocationEndDate", null, 0, 1, FuelAllocationSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFuelAllocationSchedule_FuelAllocationStartDate(), theDomainPackage.getAbsoluteDateTime(), null, "fuelAllocationStartDate", null, 0, 1, FuelAllocationSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getFuelAllocationSchedule_FuelType(), this.getFuelType(), "fuelType", null, 0, 1, FuelAllocationSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFuelAllocationSchedule_MaxFuelAllocation(), theDomainPackage.getFloat(), null, "maxFuelAllocation", null, 0, 1, FuelAllocationSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getFuelAllocationSchedule_MinFuelAllocation(), theDomainPackage.getFloat(), null, "minFuelAllocation", null, 0, 1, FuelAllocationSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(genUnitOpCostCurveEClass, GenUnitOpCostCurve.class, "GenUnitOpCostCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getGenUnitOpCostCurve_IsNetGrossP(), theDomainPackage.getBoolean(), null, "isNetGrossP", null, 0, 1, GenUnitOpCostCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(genUnitOpScheduleEClass, GenUnitOpSchedule.class, "GenUnitOpSchedule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(grossToNetActivePowerCurveEClass, GrossToNetActivePowerCurve.class, "GrossToNetActivePowerCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(heatInputCurveEClass, HeatInputCurve.class, "HeatInputCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getHeatInputCurve_AuxPowerMult(), theDomainPackage.getPU(), null, "auxPowerMult", null, 0, 1, HeatInputCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHeatInputCurve_AuxPowerOffset(), theDomainPackage.getActivePower(), null, "auxPowerOffset", null, 0, 1, HeatInputCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHeatInputCurve_HeatInputEff(), theDomainPackage.getPU(), null, "heatInputEff", null, 0, 1, HeatInputCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHeatInputCurve_HeatInputOffset(), this.getHeatRate(), null, "heatInputOffset", null, 0, 1, HeatInputCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHeatInputCurve_IsNetGrossP(), theDomainPackage.getBoolean(), null, "isNetGrossP", null, 0, 1, HeatInputCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(heatRateCurveEClass, HeatRateCurve.class, "HeatRateCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getHeatRateCurve_IsNetGrossP(), theDomainPackage.getBoolean(), null, "isNetGrossP", null, 0, 1, HeatRateCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(hydroGeneratingEfficiencyCurveEClass, HydroGeneratingEfficiencyCurve.class, "HydroGeneratingEfficiencyCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(hydroGeneratingUnitEClass, HydroGeneratingUnit.class, "HydroGeneratingUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getHydroGeneratingUnit_EnergyConversionCapability(), this.getHydroEnergyConversionKind(), "energyConversionCapability", null, 0, 1, HydroGeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroGeneratingUnit_HydroUnitWaterCost(), theDomainPackage.getFloat(), null, "hydroUnitWaterCost", null, 0, 1, HydroGeneratingUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(hydroPowerPlantEClass, HydroPowerPlant.class, "HydroPowerPlant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getHydroPowerPlant_DischargeTravelDelay(), theDomainPackage.getSeconds(), null, "dischargeTravelDelay", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPowerPlant_GenRatedP(), theDomainPackage.getActivePower(), null, "genRatedP", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getHydroPowerPlant_HydroPlantType(), this.getHydroPlantType(), "hydroPlantType", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getHydroPowerPlant_PenstockType(), this.getPenstockType(), "penstockType", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPowerPlant_PlantDischargeCapacity(), theDomainPackage.getFloat(), null, "plantDischargeCapacity", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPowerPlant_PlantRatedHead(), theDomainPackage.getLength(), null, "plantRatedHead", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPowerPlant_PumpRatedP(), theDomainPackage.getActivePower(), null, "pumpRatedP", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getHydroPowerPlant_SurgeTankCode(), this.getSurgeTankCode(), "surgeTankCode", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPowerPlant_SurgeTankCrestLevel(), theDomainPackage.getWaterLevel(), null, "surgeTankCrestLevel", null, 0, 1, HydroPowerPlant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(hydroPumpEClass, HydroPump.class, "HydroPump", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getHydroPump_PumpDischAtMaxHead(), theDomainPackage.getFloat(), null, "pumpDischAtMaxHead", null, 0, 1, HydroPump.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPump_PumpDischAtMinHead(), theDomainPackage.getFloat(), null, "pumpDischAtMinHead", null, 0, 1, HydroPump.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPump_PumpPowerAtMaxHead(), theDomainPackage.getActivePower(), null, "pumpPowerAtMaxHead", null, 0, 1, HydroPump.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getHydroPump_PumpPowerAtMinHead(), theDomainPackage.getActivePower(), null, "pumpPowerAtMinHead", null, 0, 1, HydroPump.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(hydroPumpOpScheduleEClass, HydroPumpOpSchedule.class, "HydroPumpOpSchedule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(incrementalHeatRateCurveEClass, IncrementalHeatRateCurve.class, "IncrementalHeatRateCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getIncrementalHeatRateCurve_IsNetGrossP(), theDomainPackage.getBoolean(), null, "isNetGrossP", null, 0, 1, IncrementalHeatRateCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(inflowForecastEClass, InflowForecast.class, "InflowForecast", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(levelVsVolumeCurveEClass, LevelVsVolumeCurve.class, "LevelVsVolumeCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(nuclearGeneratingUnitEClass, NuclearGeneratingUnit.class, "NuclearGeneratingUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(penstockLossCurveEClass, PenstockLossCurve.class, "PenstockLossCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(reservoirEClass, Reservoir.class, "Reservoir", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getReservoir_ActiveStorageCapacity(), theDomainPackage.getVolume(), null, "activeStorageCapacity", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_EnergyStorageRating(), theDomainPackage.getFloat(), null, "energyStorageRating", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_FullSupplyLevel(), theDomainPackage.getWaterLevel(), null, "fullSupplyLevel", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_GrossCapacity(), theDomainPackage.getVolume(), null, "grossCapacity", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_NormalMinOperateLevel(), theDomainPackage.getWaterLevel(), null, "normalMinOperateLevel", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_RiverOutletWorks(), theDomainPackage.getString(), null, "riverOutletWorks", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_SpillTravelDelay(), theDomainPackage.getSeconds(), null, "spillTravelDelay", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_SpillwayCapacity(), theDomainPackage.getFloat(), null, "spillwayCapacity", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_SpillwayCrestLength(), theDomainPackage.getLength(), null, "spillwayCrestLength", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getReservoir_SpillwayCrestLevel(), theDomainPackage.getWaterLevel(), null, "spillwayCrestLevel", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEAttribute(getReservoir_SpillWayGateType(), this.getSpillwayGateType(), "spillWayGateType", null, 0, 1, Reservoir.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(shutdownCurveEClass, ShutdownCurve.class, "ShutdownCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getShutdownCurve_ShutdownCost(), theDomainPackage.getMoney(), null, "shutdownCost", null, 0, 1, ShutdownCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getShutdownCurve_ShutdownDate(), theDomainPackage.getAbsoluteDateTime(), null, "shutdownDate", null, 0, 1, ShutdownCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(startIgnFuelCurveEClass, StartIgnFuelCurve.class, "StartIgnFuelCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getStartIgnFuelCurve_IgnitionFuelType(), this.getFuelType(), "ignitionFuelType", null, 0, 1, StartIgnFuelCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(startMainFuelCurveEClass, StartMainFuelCurve.class, "StartMainFuelCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getStartMainFuelCurve_MainFuelType(), this.getFuelType(), "mainFuelType", null, 0, 1, StartMainFuelCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(startRampCurveEClass, StartRampCurve.class, "StartRampCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getStartRampCurve_HotStandbyRamp(), theDomainPackage.getActivePowerChangeRate(), null, "hotStandbyRamp", null, 0, 1, StartRampCurve.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(startupModelEClass, StartupModel.class, "StartupModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getStartupModel_FixedMaintCost(), theDomainPackage.getCostRate(), null, "fixedMaintCost", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_HotStandbyHeat(), this.getHeatRate(), null, "hotStandbyHeat", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_IncrementalMaintCost(), theDomainPackage.getCostPerEnergyUnit(), null, "incrementalMaintCost", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_MinimumDownTime(), theDomainPackage.getHours(), null, "minimumDownTime", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_MinimumRunTime(), theDomainPackage.getHours(), null, "minimumRunTime", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_RiskFactorCost(), theDomainPackage.getMoney(), null, "riskFactorCost", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_StartupCost(), theDomainPackage.getMoney(), null, "startupCost", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_StartupDate(), theDomainPackage.getAbsoluteDateTime(), null, "startupDate", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_StartupPriority(), theDomainPackage.getInteger(), null, "startupPriority", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getStartupModel_StbyAuxP(), theDomainPackage.getActivePower(), null, "stbyAuxP", null, 0, 1, StartupModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(steamSendoutScheduleEClass, SteamSendoutSchedule.class, "SteamSendoutSchedule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(tailbayLossCurveEClass, TailbayLossCurve.class, "TailbayLossCurve", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(targetLevelScheduleEClass, TargetLevelSchedule.class, "TargetLevelSchedule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getTargetLevelSchedule_HighLevelLimit(), theDomainPackage.getWaterLevel(), null, "highLevelLimit", null, 0, 1, TargetLevelSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
		initEReference(getTargetLevelSchedule_LowLevelLimit(), theDomainPackage.getWaterLevel(), null, "lowLevelLimit", null, 0, 1, TargetLevelSchedule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);

		initEClass(windGeneratingUnitEClass, WindGeneratingUnit.class, "WindGeneratingUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		// Initialize enums and add enum literals
		initEEnum(generatorControlModeEEnum, GeneratorControlMode.class, "GeneratorControlMode");
		addEEnumLiteral(generatorControlModeEEnum, GeneratorControlMode.SETPOINT);
		addEEnumLiteral(generatorControlModeEEnum, GeneratorControlMode.PULSE);

		initEEnum(generatorControlSourceEEnum, GeneratorControlSource.class, "GeneratorControlSource");
		addEEnumLiteral(generatorControlSourceEEnum, GeneratorControlSource.UNAVAILABLE);
		addEEnumLiteral(generatorControlSourceEEnum, GeneratorControlSource.OFF_AGC);
		addEEnumLiteral(generatorControlSourceEEnum, GeneratorControlSource.ON_AGC);
		addEEnumLiteral(generatorControlSourceEEnum, GeneratorControlSource.PLANT_CONTROL);

		initEEnum(generatorOperatingModeEEnum, GeneratorOperatingMode.class, "GeneratorOperatingMode");
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.OFF);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.MANUAL);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.FIXED);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.LFC);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.AGC);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.EDC);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.MRN);
		addEEnumLiteral(generatorOperatingModeEEnum, GeneratorOperatingMode.REG);

		initEEnum(emissionTypeEEnum, EmissionType.class, "EmissionType");
		addEEnumLiteral(emissionTypeEEnum, EmissionType.SULFUR_DIOXIDE);
		addEEnumLiteral(emissionTypeEEnum, EmissionType.CARBON_DIOXIDE);
		addEEnumLiteral(emissionTypeEEnum, EmissionType.NITROGEN_OXIDE);
		addEEnumLiteral(emissionTypeEEnum, EmissionType.HYDROGEN_SULFIDE);
		addEEnumLiteral(emissionTypeEEnum, EmissionType.CHLORINE);
		addEEnumLiteral(emissionTypeEEnum, EmissionType.CARBON_DISULFIDE);

		initEEnum(emissionValueSourceEEnum, EmissionValueSource.class, "EmissionValueSource");
		addEEnumLiteral(emissionValueSourceEEnum, EmissionValueSource.MEASURED);
		addEEnumLiteral(emissionValueSourceEEnum, EmissionValueSource.CALCULATED);

		initEEnum(fuelTypeEEnum, FuelType.class, "FuelType");
		addEEnumLiteral(fuelTypeEEnum, FuelType.COAL);
		addEEnumLiteral(fuelTypeEEnum, FuelType.OIL);
		addEEnumLiteral(fuelTypeEEnum, FuelType.GAS);
		addEEnumLiteral(fuelTypeEEnum, FuelType.LIGNITE);

		initEEnum(hydroEnergyConversionKindEEnum, HydroEnergyConversionKind.class, "HydroEnergyConversionKind");
		addEEnumLiteral(hydroEnergyConversionKindEEnum, HydroEnergyConversionKind.GENERATOR);
		addEEnumLiteral(hydroEnergyConversionKindEEnum, HydroEnergyConversionKind.PUMP_AND_GENERATOR);

		initEEnum(hydroPlantTypeEEnum, HydroPlantType.class, "HydroPlantType");
		addEEnumLiteral(hydroPlantTypeEEnum, HydroPlantType.RUN_OF_RIVER);
		addEEnumLiteral(hydroPlantTypeEEnum, HydroPlantType.PUMPED_STORAGE);
		addEEnumLiteral(hydroPlantTypeEEnum, HydroPlantType.MAJOR_STORAGE);
		addEEnumLiteral(hydroPlantTypeEEnum, HydroPlantType.MINOR_STORAGE);

		initEEnum(penstockTypeEEnum, PenstockType.class, "PenstockType");

		initEEnum(surgeTankCodeEEnum, SurgeTankCode.class, "SurgeTankCode");

		initEEnum(spillwayGateTypeEEnum, SpillwayGateType.class, "SpillwayGateType");
	}

} //ProductionPackageImpl
